docs(adr): ADR-0050 — split FormView.type into layout vs presentation (#1890)#1914
Merged
Conversation
…resentation FormView.type conflates layout (simple/tabbed/wizard/split) with presentation container (drawer/modal), so "a modal containing a tabbed form" is inexpressible — which is why modal create/edit can only render simple. Presentation is already modelled elsewhere (NavigationMode, addRecord.mode, action type:'modal') and the drawer/modal/split form-type values have zero real usage (5 demo named views). Decision: FormView.type = layout only (simple/tabbed/wizard); drop drawer/modal (caller-supplied containers) and split (covered by subforms + list split-detail); ObjectForm drops the retired branches. Spec-major; implement after sign-off, bundled with modal/drawer layout-forwarding so "modal + tabbed" ships. Refs #1890 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Proposes ADR-0050 — the modelling fix behind the form-variant work in #1890 / objectstack-ai/objectui#1762.
FormView.typeoverloads two orthogonal dimensions in one enum:simple/tabbed/wizard/splitdrawer/modalSo "a modal containing a tabbed form" is inexpressible —
typeis one value. That's exactly why the real modal create/edit entry points (AppContent,useActionModal) hard-setformType:'modal'and the form inside can only besimple.Key findings (in the ADR)
ObjectFormalready implements every variant — the gap was entry wiring (full-page route fixed in objectui#1762).NavigationMode(detail open), listaddRecord.mode, actiontype:'modal'.drawer/modal/splitasFormView.typevalues have zero real usage — only 5 showcase/template demo named views.Decision
FormView.type→ layout only (simple/tabbed/wizard). Dropdrawer/modal(caller-supplied containers via the existing open-mode fields) andsplit(covered bysubforms+ the list's split-detail mode).ObjectFormdrops the retired branches.Sequencing
This PR is the design (ADR doc only). Implementation is a spec-major change (breaking enum narrowing, like ADR-0021's cutover) — it should land after architect sign-off, ideally bundled with modal/drawer layout-forwarding so the "modal + tabbed" capability ships demonstrably. Migration cost is low (near-zero real usage).
Refs #1890
🤖 Generated with Claude Code